package com.tsy.server.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tsy.server.system.entity.Organization;
import com.tsy.server.system.entity.UserOrganization;
import com.tsy.server.system.entity.dto.OrganizationDTO;
import com.tsy.server.system.entity.vo.OrganizationVO;

import java.util.List;

/**
 * 组织管理服务接口
 */
public interface OrganizationService {

    /**
     * 创建组织
     * @param organizationDTO 组织信息
     * @return 创建的组织
     */
    void createOrganization(OrganizationDTO organizationDTO);

    /**
     * 加入组织
     * @param userOrganization 用户组织关联信息
     * @return 加入结果
     */
    void joinOrganization(UserOrganization userOrganization);

    /**
     * 修改组织信息
     * @param organizationDTO 组织信息
     * @return 修改后的组织
     */
    void updateOrganization(OrganizationDTO organizationDTO);

    Page<Organization> getUserOrgList(OrganizationVO organizationVO);

    List<OrganizationVO> getUserOrgs();

    void leaveOrganization(Long orgId);
}